```c
static void UartTask(void)
{
    const char *data = "\x01\x03\x00\x00\x00\x04\x44\x09";
    unsigned char uartReadBuff1[UART_BUFF_SIZE] = {0};
    uint32_t count = 0;
    uint32_t len = 0;
    const unsigned char uartReadBuff[UART_BUFF_SIZE] = {0};
    float result[4] = {0};

    // 对UART1的一些初始化 Some initialization of UART1
    Uart1GpioInit();
    // 对UART1参数的一些配置 Some configurations of UART1 parameters
    Uart1Config();

    while (1)
    {
        IoTGpioSetOutputVal(IOT_IO_NAME_GPIO_7, 0);                 ////add for bin
        // 通过UART1 发送数据 Send data through UART1
        IoTUartWrite(HI_UART_IDX_1, (unsigned char *)data, 8);
        printf("send data:");
        for (size_t i = 0; i < 8; i++)
        {
            printf("%02X ", (unsigned char)data[i]);
        }
        printf("\n");
        // 通过UART1 接收数据 Receive data through UART1
        len = IoTUartRead(HI_UART_IDX_1, uartReadBuff, UART_BUFF_SIZE);
        // printf("len:%d\n", len);

        if (len > 0)
        {
            // 把接收到的数据打印出来 Print the received data
            // printf("Uart Read Data is: [ %d ] %s \r\n", count, uartReadBuff);
            for (size_t i = 0; i < 13; i++)
            {
                // printf("%02X ", (unsigned char)uartReadBuff[i]);
                // int decimal = hexToDecimal((unsigned char)uartReadBuff[i]);
                uartReadBuff1[i] = (char)uartReadBuff[i];
            }
            int j = 0;
            for (size_t i = 3; i < 11; i = i + 2)
            {
                // printf("test: %02X", uartReadBuff1[i]);
                int decimal = hexToDecimal(uartReadBuff1[i], uartReadBuff1[i + 1]);
                // printf("%d\n", decimal);
                result[j++] = decimal;
            }
            printf("water:%.2f temperature:%.2f elect:%.2f ph:%.2f", result[0] / 10.0, result[1] / 10.0, result[2], result[3] / 10.0);
            printf("\n");
        }
        memset(uartReadBuff1, 0, UART_BUFF_SIZE); //清空缓冲区
        usleep(U_SLEEP_TIME);
        count++;
    }
}
```

